package com.zhuiyun.project.api.video.publishVideo.service;

import com.zhuiyun.project.api.video.publishVideo.model.PublishVideoModel;
import com.zhuiyun.project.common.errorCode.CommonException;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @ClassName PublishVideoService
 * @Description 上传视频管理服务类
 * @Author qsh
 * @Date 2023/12/13 20:54
 **/
public interface PublishVideoService {

    /**
    * @Author qsh
    * @Description 查询未推荐视频（运营
    * @Date 2023/12/13 20:56
    * @Return java.util.List<com.zhuiyun.project.api.video.publishVideo.entity.PublishVideo>
    * @param publishVideoModel
    */
    CommonResult getPublishVideo(PublishVideoModel publishVideoModel, PageRequest pageRequest);

    /**
     * @Author qsh
     * @Description 查询已推荐视频（运营
     * @Date 2023/12/13 20:56
     * @Return java.util.List<com.zhuiyun.project.api.video.publishVideo.entity.PublishVideo>
     * @param publishVideoModel
     */
    CommonResult getPublishVideoT(PublishVideoModel publishVideoModel, PageRequest pageRequest);

    /**
     * @Author qsh
     * @Description 查询已下架视频（运营
     * @Date 2023/12/13 20:56
     * @Return java.util.List<com.zhuiyun.project.api.video.publishVideo.entity.PublishVideo>
     * @param publishVideoModel
     */
    CommonResult getPublishVideoX(PublishVideoModel publishVideoModel, PageRequest pageRequest);

    /**
    * @Author qsh
    * @Description 查询视频详情
    * @Date 2023/12/15 15:33
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param vId
* @param pageRequest
    */
    CommonResult getPublishVideoById(Integer vId, PageRequest pageRequest);

    /**
    * @Author qsh
    * @Description 逻辑删除上传视频
    * @Date 2023/12/15 15:32
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param videoIds
    */
    CommonResult DeleteVideoById(List<Integer> videoIds) throws CommonException;

    /**
     * @Author qsh
     * @Description 绑定视频池（推荐/取消推荐
     * @Date 2023/12/15 15:32
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param videoIds
     */
    CommonResult BindVideo(List<Integer> videoIds) throws CommonException;

   /**
   * @Author qsh
   * @Description 上传视频封面
   * @Date 2023/12/18 9:58
   * @Return com.zhuiyun.project.common.response.CommonResult
   * @param file
   */
    CommonResult uploadVideoCover(MultipartFile file) throws CommonException;

    /**
    * @Author qsh
    * @Description 新增上传视频信息
    * @Date 2023/12/21 9:07
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param publishVideoModel
    */
    CommonResult saveVideo(PublishVideoModel publishVideoModel) throws CommonException;

    /**
    * @Author qsh
    * @Description 编辑上传视频信息
    * @Date 2023/12/21 9:07
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param publishVideoModel
    */
    CommonResult updateVideo(PublishVideoModel publishVideoModel) throws CommonException;

    /**
    * @Author qsh
    * @Description 删除服务器视频
    * @Date 2023/12/25 14:28
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param id
    */
    CommonResult deleteV(Integer id);

    /**
     * @Author qsh
     * @Description 删除服务器视频封面
     * @Date 2023/12/25 14:28
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param id
     */
    CommonResult deleteVC(Integer id);
}
